<?php
/**
* Copyright 2009 Waag Society <http://www.waag.org>
* This file is part of Annotrax.
*
* Annotrax is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License,
* or (at your option) any later version.
*
* Annotrax is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Annotrax.
* If not, see http://www.gnu.org/licenses/gpl.html
*/

?>
<?php
// application/models/GuestbookMapper.php
class Default_Model_AdminUserMapper{
    private $dbTable;

    public function find( Default_Model_AdminUser $user ){
        if( null !== @$user->id ){
            $result = $this->getTable()
                        ->find( $user->id );

        }
        else{
            return;
        }

        if( null !== $result ){
            foreach( $result->toArray() as $key => $value ){
                $user->$key = $value;
            }
        }

        return $user;
    }

    public function save( Default_Model_AdminUser $user ){
        $columns    = array('name', 'password', 'email');
        $insert     = array();

        foreach( $columns as $key ){
            $insert[$key] = $user->$key;
        }

        if( null === $user->id ){
            //$insert['inserted'] = new Zend_Db_Expr('NOW()');

            $this->getTable()->insert( $insert );
            $user->id = $this->getTable()
                        ->getAdapter()
                        ->lastInsertId()
            ;
        }
        else{
            $this->getTable()
                ->update( $insert, array( 'id = ?' => $user->id ) );
        }
        return $user;
    }

    private function getTable(){
        if( $this->dbTable === null ){
			$dbTable = new Zend_Db_Table('user_admin');
            $this->setTable( $dbTable );
        }
        return $this->dbTable;
    }

    private function setTable( $dbTable ){
        if (!$dbTable instanceof Zend_Db_Table_Abstract) {
            throw new Exception('Invalid table data gateway provided');
        }
        $this->dbTable = $dbTable;
    }
}
